Video-on-Demand (VoD) services have become extremely popular in video broadcast communications networks, as is the use of Internet Protocol Television (IPTV) systems. However, it is well known that multimedia applications such as VoD involve the transfer of very large amounts of data, placing a considerable load on the resources of the network, the server and the client. As a result, for example, when the user of a VoD service requests that a given video (e.g., a movie) be played (i.e., downloaded), there will invariably be a significant start-up delay (e.g., 5 to 10 seconds or more) before the video begins playing, because the initial portion of the video must first be transmitted through the network from the server to the client. After this initial delay, however, the streaming of the video is continuous, and so, typically, the remainder of the video can be played without any additional (noticeable) delay.
Various data caching techniques may be advantageously employed to address various performance issues associated with the streaming of multimedia (e.g., video) data. In particular, by caching the video content, much of the delay of downloading the data can be reduced or eliminated. However, it is generally impractical to cache, for example, the entire data content of a complete video library (e.g., one containing all available movies). Thus, a technique known as “prefix caching” has recently been employed, wherein caches store only an initial portion of a multimedia title (e.g., a movie or other video), thereby addressing specifically the problem of the start-up delay.
Specifically, most approaches to prefix caching store a pre-determined fraction of each content item in prefix caches. Usually, the fraction is statically assigned (e.g., the first two minutes of a movie), but more advanced schemes exist that support prefixes with a variable length or prefixes at a given offset within a title. However, all solutions require that a given amount of cache space is dedicated to the prefix of a title. Note that the size of a prefix in a cache depends mainly on the prefix length and the data rate required. And the prefix for each title has to be distributed to prefix caches when a title becomes available, in order to gain the benefit of the technique. If the prefix for a title has not been distributed to a cache, the cache can't perform prefix caching for the given title.
Prefix caching is known to have many advantages—for example, it enables instant playback of a title and it can increase the quality of service by allowing a receiver more time to locate a suitable content source. However, in order for prefix caching to be fully effective, a prefix cache should advantageously contain the prefix of all titles available in a given content distribution network. The above described storage and distribution requirements prevent current prefix-caching solutions from scaling well to content distribution systems that provide for very large content libraries (e.g., a VoD library of movies) or to content distribution networks with a constantly revolving title set (e.g., an IPTV system), since the amount of data that needs to be stored in caches and the traffic generated by constantly updating the prefixes stored may be prohibitive. While large libraries can be supported by storing the prefix of only the most popular items, this provides the benefits of prefix caching (e.g., instant playback) to only those items. Therefore, a more effective solution is needed in these environments that provides prefix caching for large video libraries and video libraries with highly dynamic content.